public class NM {
    //算法题：无重复字符的最长子串；
    // 给定一个字符串s,请你找出其中不含有重复字符的最长子字符串的长度；
    public static int fun(String ss){
        char[] s=ss.toCharArray();//将字符串转换成一个字符数组；
        int[] hash=new int[128];//基于数组实现的一个哈希表；
        int left=0;
        int right=0;
        int len=0;
        int n=s.length;
        while(right<n){
            //1.进入窗口；
            hash[s[right]]++;
            //2,判断是否满足出窗口的条件；
            while(hash[s[right]]>1){
                hash[s[left++]]--;//出窗口操作；
                len=Math.max(len,right-left+1);//更新结果；
            }
            right++;
        }
        return len;
    }
    public static void main(String[] args){
        String ss="abcabcbb";
        int len=fun(ss);
        System.out.println(len);
    }
}
